﻿'................................................
'.Esta clase esta hecha por tato (Santiago Eira).
'................................................
Imports System.Data
Imports System.Data.Odbc
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports Interfaces

Imports Entidades

Public Class DBCategorias
    Inherits ICategoria

    Public cn As OdbcConnection

    Public con As SqlConnection


    Sub New()
        Try
            cn = New OdbcConnection("UID=pruebasexto" & _
         ";PWD=pruebasexto123" & _
         ";DATABASE=pruebasexto" & _
         ";SERVER=db4free.net" & _
         ";DRIVER={MySQL ODBC 3.51 Driver};")
            cn.Open()
        Catch ex As Exception
            MsgBox(ex.ToString)
            MsgBox("ERror al conectarse")
        End Try


    End Sub

    Function Bajacategorias(ByVal nodo As Categorias) As Boolean
        Try
            Try
                Dim cmd As OdbcCommand = New OdbcCommand("{call Bajas_categorias (?)}", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@nombrex", nodo.nombre)

                cn.Open()
                cmd.ExecuteNonQuery()

            Catch o As OdbcException
                MsgBox(o.Message.ToString)
                Return False
            Finally
                cn.Close()
            End Try
            Return True

        Catch ex As Exception


        End Try
        Return False

    End Function
    ' Function ModificacionProducto(ByVal nodo As Entidades.producto) As Boolean
    '    Try
    '       Try
    '  Dim cmd As OdbcCommand = New OdbcCommand("{call Modificacion_producto (?,?,?)}", cn)
    '      cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.AddWithValue("@nomb", nodo.pid1)
    '            cmd.Parameters.AddWithValue("@pre", nodo.pid2)
    '            cmd.Parameters.AddWithValue("@id_ca", nodo.pid3)
    '
    '           cn.Open()
    '          cmd.ExecuteNonQuery()
    '
    '       Catch o As OdbcException
    '          MsgBox(o.Message.ToString)
    '         Return False
    '    Finally
    '       cn.Close()
    '  End Try
    ' Return True
    '
    '   Catch ex As Exception
    '
    '
    '   End Try
    '  Return False
    '
    ' End Function

    '
    ' FUNCIÓN QUE DEVUELVE UN ARRAYLIST.
    ' UTILIZA UN ODBCDATAREADER PARA LEER EL RESULTADO DE LA CONSULTA QUE DEVUELVE EL PROCEDIMIENTO.
    ' 
    Public Overrides Function consultacategoria() As ArrayList
        ' ARRAYLIST QUE SE CARGARÁ CON LOS DATOS Y SE RETORNA
        Dim arr As ArrayList = New ArrayList
        Dim cmd As OdbcCommand = New OdbcCommand("{call consultacategorias ()}", cn)
        ' SE CARGA EL DATAREADER

        Dim dr As OdbcDataReader = cmd.ExecuteReader()
        'RECORRO EL DATAREADER AGREGANDO ITEMS EN EL ARRAYLIST
        ' EL ARRAYLIST GUARDA NODO (CAPSULA), ASI QUE PRIMERO SE CARGA EL NODO Y LUEGO SE AGREGA UN ELEMENTO EN EL ARRAYLIST
        ' 

        While dr.Read 'MIENTRAS HAYA ALGO EN EL DATAREADER
            Dim nodo As Categorias = New Categorias 'CREO EL NODO
            nodo.id = dr.GetInt32(0) 'CARGO EL NODO CON LOS DATOS DEL DATAREADER
            nodo.nombre = dr.GetString(1)
            arr.Add(nodo) ' AGREGO UN ELEMENTO AL ARRAYLIST


        End While

        dr.Close()

        Return arr ' RETORNA EL ARRAYLIST 


        'Catch ex As Exception
        '    MsgBox(ex.ToString)
        'Return ds

        'End Try
    End Function

    Public Overrides Function Altacategoria(ByVal nodo As Categorias) As Boolean
        Try
            Try
                Dim cmd As OdbcCommand = New OdbcCommand("{call Altas_categorias (?)}", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.AddWithValue("@nombrex", nodo.nombre)

                cmd.ExecuteNonQuery()

            Catch o As OdbcException
                MsgBox(o.Message.ToString)
                Return False
            Finally
                cn.Close()
            End Try
            Return True

        Catch ex As Exception


        End Try
        Return False
    End Function
End Class
